﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GQ.Controls.Tools;
using GQ.Utils;
using GQ.BLL.QuanLyKho;
using GQ.WinForms;
using DevExpress.XtraEditors.Controls;

namespace GQ.QuanLyKho
{
    public partial class frmListDoiTuong : frmBase
    {
        public frmListDoiTuong()
        {
            InitializeComponent();
            GridUtils.SetStyle(gridView1);
            gridView1.OptionsBehavior.AutoExpandAllGroups = true;
        }

        private void frmDoiTuong_Load(object sender, EventArgs e)
        {
            repositoryItemImageComboBox1.Items.Add(new ImageComboBoxItem("Khách hàng",1,-1));
            repositoryItemImageComboBox1.Items.Add(new ImageComboBoxItem("Nhà cung cấp", 2, -1));
            repositoryItemImageComboBox1.Items.Add(new ImageComboBoxItem("Khách hàng,nhà cung cấp", 3, -1));

            gridControl1.DataSource = DoiTuong.LoadAllBy("CompanyID={0}", Config.CompanyID);
            
        }

        private void menuButton1_AddNewClick()
        {
            try
            {
                frmDoiTuong frm = new frmDoiTuong();
                frm.DoiTuong = new DoiTuong();
                if (frm.ShowDialog(this) == DialogResult.OK)
                {
                    IList<DoiTuong> doituongs = (IList<DoiTuong>)gridControl1.DataSource;
                    doituongs.Add(frm.DoiTuong);
                    Helpers.Project.SetStatus("Lưu thành công", StatusInfo.Complete);
                }
            }
            catch (Exception ex)
            {
                Helpers.Log(ex);
                Helpers.Project.SetStatus("Lưu không thành công", StatusInfo.Error);

            }
            menuButton1.Action = GQ.Controls.ActionState.View;
        }

        private void menuButton1_EditClick()
        {
            DoiTuong doituong = (DoiTuong)gridView1.GetFocusedRow();
            if (doituong == null)
            {
                menuButton1.Action = GQ.Controls.ActionState.View;
                Box.Show("Không có dòng nào được chọn");
                return;
            }
            try
            {
                frmDoiTuong frm = new frmDoiTuong();
                frm.DoiTuong = doituong;
                if (frm.ShowDialog(this) == DialogResult.OK)
                {
                    Helpers.Project.SetStatus("Lưu thành công", StatusInfo.Complete);
                }
            }
            catch (Exception ex)
            {
                Helpers.Log(ex);
                Helpers.Project.SetStatus("Lưu không thành công", StatusInfo.Error);

            }
            menuButton1.Action = GQ.Controls.ActionState.View;
        }

        private void menuButton1_DeleteClick()
        {
            DoiTuong doituong = (DoiTuong)gridView1.GetFocusedRow();
            if (doituong == null)
            {

                Box.Show("Không có dòng nào được chọn");
                return;
            }
            if (Box.Show("Bạn có muốn xóa dòng này không?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
                return;
            try
            {
                doituong.Delete();
                IList<DoiTuong> doituongs = (IList<DoiTuong>)gridControl1.DataSource;
                doituongs.Remove(doituong);
                Helpers.Project.SetStatus("Xóa thành công", StatusInfo.Complete);
            }
            catch (Exception ex)
            {
                Helpers.Log(ex);
                Helpers.Project.SetStatus("Xóa không thành công", StatusInfo.Error);

            }
        }

        private void gridControl1_DoubleClick(object sender, EventArgs e)
        {
            menuButton1_EditClick();
        }
    }
}
